/*
 * Copyright (c) 2012 Andrea De Rinaldis <ozioso at ipignoli.dyndns.org>
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */

package org.dyndns.ipignoli.droidcruise.ui;

import org.dyndns.ipignoli.droidcruise.R;
import org.dyndns.ipignoli.droidcruise.db.MyHelper;
import org.dyndns.ipignoli.droidcruise.recording.Recording;
import org.dyndns.ipignoli.droidcruise.util.MyDateFormat;
import android.app.Activity;
import android.database.Cursor;
import android.view.View;
import android.widget.ImageView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;


public class RecordingCursorAdapter extends SimpleCursorAdapter{

  public RecordingCursorAdapter(final Activity context, int layout, Cursor c,
      int viewIcon, int viewDate, int viewLocality){
    super(context, layout, c, new String[]{
        MyHelper.F_RECORDINGS_TYPE, MyHelper.F_RECORDINGS_TIME,
        MyHelper.F_RECORDINGS_LOCALITY
    }, new int[]{
        viewIcon, viewDate, viewLocality
    });

    setViewBinder(new ViewBinder(){
      @Override
      public boolean setViewValue(View view, Cursor cursor, int columnIndex){
        if(columnIndex == cursor.getColumnIndex(MyHelper.F_RECORDINGS_TYPE)){
          int sent = cursor.getInt(cursor.getColumnIndex(MyHelper.F_RECORDINGS_SENT));
          switch(cursor.getInt(columnIndex)){
            case Recording.RADAR_TYPE:
              ((ImageView)view).setImageResource(sent == 0
                  ? R.drawable.ic_list_radar : R.drawable.ic_list_radar_sent);
              return true;
            case Recording.ROUTE_TYPE:
              ((ImageView)view).setImageResource(sent == 0
                  ? R.drawable.ic_list_route : R.drawable.ic_list_route_sent);
              return true;
            case Recording.TUTOR_TYPE:
              ((ImageView)view).setImageResource(sent == 0
                  ? R.drawable.ic_list_tutor : R.drawable.ic_list_tutor_sent);
              return true;
          }
          return true;
        }

        if(columnIndex == cursor.getColumnIndex(MyHelper.F_RECORDINGS_TIME)){
          ((TextView)view)
              .setText(MyDateFormat.getInstance().format(
                  MyDateFormat.getInstance().createGC(
                      cursor.getLong(columnIndex))));
          return true;
        }

        if(columnIndex == cursor.getColumnIndex(MyHelper.F_RECORDINGS_LOCALITY)){
          ((TextView)view).setText(cursor.getString(columnIndex));
          return true;
        }

        return false;
      }
    });
  }
}
